home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / hpisa.exe / OEMSETUP.INF < prev    next >
INI File  |  1993-09-03  |  34KB  |  960 lines

  1. [Identify]
  2.     Debug-Output "HPISA: Identify."
  3.     read-syms Identification
  4.     set Status     = STATUS_SUCCESSFUL
  5.     set Identifier = $(OptionType)
  6.     set Media      = #("Source Media Descriptions", 1, 1)
  7.     Return $(Status) $(Identifier) $(Media)
  8.  
  9. [Identification]
  10.     OptionType = NetAdapter
  11. [PlatformsSupported]
  12.     ISA
  13.     EISA
  14.     "Jazz-Internal Bus"
  15. [Options]
  16. ;     HPISA
  17.      HP27245
  18.      HP27250
  19.      HP27247A
  20.      HP27247B
  21.      HP27252A
  22. [FileConstants]
  23. UtilityInf      = "UTILITY.INF"
  24. ParamInf        = "NCPARAM.INF"
  25. subroutineinf   = "SUBROUTN.INF"
  26. SoftwareType    = "driver"
  27. Exit_Code       = 0
  28. DialogDllName   = "hpisadlg.dll"
  29. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  30. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  31. Manufacturer    = "Hewlett-Packard"
  32. ProductMajorVersion     = "3"
  33. ProductMinorVersion     = "1"
  34. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  35. ProductSoftwareName     = "Hpisa"
  36. ProductSoftwareTitle    = "HP 272xx PC LAN Driver"
  37. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\hpisa.sys"
  38. NetRuleSoftwareType     = "hpisaSys ndisDriver hpisaDriver"
  39. NetRuleSoftwareUse      = $(SoftwareType)
  40. NetRuleSoftwareBindForm = """HpisaSys"" yes no container"
  41. NetRuleSoftwareClass    = {"hpisaDriver basic"}
  42. NetRuleSoftwareBindable = {"hpisaDriver hpisaAdapter non exclusive 100"}
  43. ProductHardwareName     = "Hpisa"
  44. ;ProductHardwareHPISATitle = "HP 272xx PC LAN Adapters"
  45. ProductHardwareHP27245Title  = "HP 27245A"
  46. ProductHardwareHP27250Title  = "HP 27250"
  47. ProductHardwareHP27247ATitle = "HP 27247A"
  48. ProductHardwareHP27247BTitle = "HP 27247B"
  49. ProductHardwareHP27252ATitle = "HP 27252A"
  50. NetRuleHardwareType     = "hpisa hpisaAdapter"
  51. NetRuleHardwareBindForm = " yes yes container"
  52. NetRuleHardwareClass    = {"hpisaAdapter basic"}
  53. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  54. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  55. [GeneralConstants]
  56. from      = ""
  57. to        = ""
  58. ExitCodeOk     = 0
  59. ExitCodeCancel = 1
  60. ExitCodeFatal  = 2
  61. KeyNull         = ""
  62. MAXIMUM_ALLOWED   = 33554432
  63. RegistryErrorIndex = NO_ERROR
  64. KeyProduct      = ""
  65. KeyParameters   = ""
  66. TRUE            = 1
  67. FALSE           = 0
  68. NoTitle            = 0
  69. ExitState   = "Active"
  70. OldVersionExisted = $(FALSE)
  71. DriverPath      = $(!STF_NTPATH)\drivers
  72. [date]
  73.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  74.  
  75. [ReturnOptions]
  76.     Debug-Output "HPISA: ReturnOptions."
  77.     set Status        = STATUS_FAILED
  78.     set OptionList     = {}
  79.     set OptionTextList = {}
  80.     set LanguageList = ^(LanguagesSupported, 1)
  81.     Ifcontains(i) $($0) in $(LanguageList)
  82.         ifstr(i) $($1) == ""
  83.                         goto returnoptions
  84.         endif
  85.         set PlatformList = ^(PlatformsSupported, 1)
  86.         Ifcontains(i) $($1) in $(PlatformList)
  87.                         goto returnoptions
  88.         else
  89.                         set Status = STATUS_NOTSUPPORTED
  90.                         goto finish_ReturnOptions
  91.         endif
  92.     else
  93.                 set Status = STATUS_NOLANGUAGE
  94.                 goto finish_ReturnOptions
  95.     endif
  96. returnoptions = +
  97.     set OptionList     = ^(Options, 1)
  98.     set OptionTextList = ^(OptionsText$($0), 1)
  99.     set Status         = STATUS_SUCCESSFUL
  100.     Debug-Output "HPISA: ReturnOptions successful."
  101. finish_ReturnOptions = +
  102.     Return $(Status) $(OptionList) $(OptionTextList)
  103.  
  104. [InstallOption]
  105.     set Status   = STATUS_FAILED
  106.     set Option   = $($1)
  107.     set SrcDir   = $($2)
  108.     set AddCopy  = $($3)
  109.     set DoCopy   = $($4)
  110.     set DoConfig = $($5)
  111.     set LanguageList = ^(LanguagesSupported, 1)
  112.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  113.         Return STATUS_NOLANGUAGE
  114.     endif
  115.     set-subst LF = "\n"
  116.     read-syms GeneralConstants
  117.     read-syms FileConstants
  118.     read-syms DialogConstants$(!STF_LANGUAGE)
  119.     ifstr(i) $(!NTN_Origination) == "NCPA"
  120.         set Continue = "OK"
  121.     endif
  122.     read-syms FileConstants$(!STF_LANGUAGE)
  123.     detect date
  124.     set-title  $(FunctionTitle)
  125.     set to   = Begin
  126.     set from = Begin
  127.     set CommonStatus = STATUS_SUCCESSFUL
  128.     EndWait
  129. Begin = +
  130.     Set ActivateDetection = FALSE
  131.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  132.         set StartLabel = removeadapter
  133.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  134.         set StartLabel = UpgradeSoftware
  135.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  136.         set StartLabel = bindingadapter
  137.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  138.         set StartLabel = configureadapter
  139.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  140.             Debug-Output "Cannot configure the Hpisa driver software."
  141.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  142.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  143.                 Debug-Output "ShellCode error: cannot get an error string."
  144.                 goto ShellCodeError
  145.             endif
  146.             set Error = $($R0)
  147.             set from = end
  148.             set to = end
  149.             goto nonfatalinfo
  150.         endif
  151.     else
  152.         set StartLabel = installadapter
  153.         set OEM_ABANDON_OPTIONS = {}
  154.         set OEM_ABANDON_SOFTWARE = FALSE
  155.         set OEM_ABANDON_ON = TRUE
  156.     endif
  157.     Debug-Output "OEMSETUP.INF: =================================================="
  158.     Debug-Output "OEMSETUP.INF: STF_CWDIR is: "$(!STF_CWDIR)
  159.     Debug-Output "OEMSETUP.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  160.     Debug-Output "OEMSETUP.INF: Option is: "$(Option)
  161.     Debug-Output "OEMSETUP.INF: =================================================="
  162.     Set DetectedCard = FALSE
  163.     Goto $(StartLabel)
  164. installadapter = +
  165.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  166.     Ifstr $(KeyProduct) != $(KeyNull)
  167.         CloseRegKey $(KeyProduct)
  168.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  169.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  170.                $(ProductVersion)
  171.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  172.                Debug-Output "ShellCode error: cannot get an error string."
  173.                goto ShellCodeError
  174.            endif
  175.            goto end
  176.         else
  177.            Shell $(UtilityInf), CardExistedDlg
  178.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  179.                Debug-Output "ShellCode error: cannot get an error string."
  180.                goto ShellCodeError
  181.            endif
  182.            ifstr(i) $($R1) != "OK"
  183.                goto end
  184.            endif
  185.            set OldVersionExisted = $(TRUE)
  186.         endif
  187.     endif
  188.     Set CurrParamSettings = {}
  189.     set   OldSource =  $(!STF_SRCDIR)
  190.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(!STF_SRCDIR)
  191.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  192.           Goto fatal
  193.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  194.           Goto fatal
  195.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  196.           Goto installstep1
  197.     Endif
  198.     Set !STF_SRCDIR = $($R1)
  199.     install "Install-Dll"
  200.     Set !STF_SRCDIR = $(OldSource)
  201. ;Set Defaults
  202.     set IRQValue = *($(IRQList), $($(Option)IRQDefault))
  203.     set IOBaseAddrValue = *($(IOBaseAddrList), $($(Option)IOBaseAddrDefault))
  204.     set MemoryMapValue = *($(MemoryMapList), $($(Option)MemoryMapDefault))
  205.     Goto adaptersetup
  206. configureadapter = +
  207.     Ifstr $(KeyProduct) == $(KeyNull)
  208.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  209.         Ifstr $(KeyProduct) == $(KeyNull)
  210.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  211.             Debug-Output "Cannot find component product key"
  212.             goto fatalregistry
  213.         Endif
  214.     Endif
  215.     Debug-Output "INF: Shelling to FindService"
  216.     Shell $(UtilityInf) FindService, $(KeyProduct)
  217.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  218.         Debug-Output "INF: FindService shell failure"
  219.         Goto ShellCodeError
  220.     Endif
  221.     Ifstr(i) $($R0) != NO_ERROR
  222.         Debug-Output "INF: FindService Shell error: "$($R0)
  223.         Goto fatalregistry
  224.     endif
  225.     Set KeyParameters = $($R2)
  226.     CloseRegKey $($R1)
  227.     Ifstr $(KeyParameters) == $(KeyNull)
  228.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  229.         Debug-Output "Cannot find component service"
  230.         goto fatalregistry
  231.     endif
  232.     set OldVersionExisted = $(TRUE)
  233.     set ValueName = ""
  234.     set ValueData = ""
  235.     set ValueStr  = ""
  236.     set ValueList = {}
  237.     EnumRegValue $(KeyParameters) ValueList
  238.  
  239.     ForListDo $(ValueList)
  240.     set ValueItem = $($)
  241.     set ValueName = *($(ValueItem),1)
  242.     set ValueData = *($(ValueItem),4)
  243.     ifstr(i) $(ValueName) == "InterruptNumber"
  244.         set IRQValueIndex = $(ValueData)
  245.     else-ifstr(i) $(ValueName) == "IoBaseAddress"
  246.         set IOBaseAddrIndex = $(ValueData)
  247.         else-ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  248.         set MemoryMapIndex = $(ValueData)
  249.     endif
  250.  
  251.     EndForListDo
  252.  
  253.     set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  254.     ifstr(i) $(IRQValue) == ""
  255.     set IRQValue = *($(IRQList), 2)
  256.     endif
  257.  
  258.  
  259.     set MemoryMapValue = *($(MemoryMapList), ~($(MemoryMapValues),$(MemoryMapIndex)))
  260.     ifstr(i) $(MemoryMapValue) == ""
  261.     set MemoryMapValue = *($(MemoryMapList), 2)
  262.     endif
  263.  
  264.  
  265.     set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  266.  
  267.     ifstr(i) $(IOBaseAddrValue) == ""
  268.     set IOBaseAddrValue = *($(IOBaseAddrList), 1)
  269.     endif
  270.  
  271. adaptersetup = +
  272.     Shell "" DebugConfiguration "before displaying dialog"
  273.     Set from = adapteroptions
  274.     goto adapteroptions
  275. adapteroptions = +
  276.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  277.     LoadLibrary "Disk 1" $(DialogDllName) !hLib
  278.     ui start "InputDlg"  $(!hLib)
  279.     FreeLibrary $(!hLib)
  280.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  281.                 set IRQValueIndex = $(Combo1Out)
  282.                 set IOBaseAddrIndex = $(Combo2Out)
  283.                 set MemoryMapIndex = $(Combo3Out)
  284.                 ui pop 1
  285.                 goto nextstep
  286.     else-ifstr(i) $(DLGEVENT) == "BACK"
  287.                 set CommonStatus = STATUS_USERCANCEL
  288.                 Debug-Output "Action: exit. Bye."
  289.                 ui pop 1
  290.                 goto end
  291.     else
  292.                 ui pop 1
  293.                 Debug-Output "Action: unknown. Bye."
  294.                 goto end
  295.     endif
  296. nextstep = +
  297.     Shell "" DebugConfiguration "after running dialog"
  298.     Set from = adapteroptions
  299.     Set to = skipoptions
  300.     goto skipoptions
  301. skipoptions =+
  302.     ifint $(OldVersionExisted) == $(TRUE)
  303.         ifstr(i) $(!NTN_InstallMode) == configure
  304.             goto writeparameters
  305.         endif
  306.     endif
  307.     StartWait
  308.     ifint $(OldVersionExisted) == $(FALSE)
  309.         ifstr(i) $(!NTN_InstallMode) == "install"
  310.            Ifstr(i) $(DoCopy) == "YES"
  311.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  312.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  313.                   Goto ShellCodeError
  314.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  315.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  316.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  317.                       goto ShellCodeError
  318.                   endif
  319.                   set Error = $($R0)
  320.                   Goto fatal
  321.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  322.                   Goto successful
  323.               Endif
  324.               Set SrcDir = $($R1)
  325.            Endif
  326.            install "Install-Option"
  327.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  328.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  329.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  330.                   goto ShellCodeError
  331.               endif
  332.               set Error = $($R0)
  333.               goto fatal
  334.            endif
  335.         endif
  336.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  337.             $(ProductSoftwareName), +
  338.             $(ProductSoftwareName), +
  339.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  340.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  341.             $(NetEventDLL)
  342.         Set OEM_ABANDON_SOFTWARE = TRUE
  343.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  344.             Debug-Output "ShellCode error"
  345.             goto ShellCodeError
  346.         endif
  347.         set RegistryErrorIndex = $($R0)
  348.         set KeyProduct      = $($R1)
  349.         Set SoftNetRulesKey = $($R2)
  350.         CloseRegKey $($R3)
  351.         CloseRegKey $($R4)
  352.         CloseRegKey $($R5)
  353.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  354.             EndWait
  355.             Debug-Output "Registry error: add software components"
  356.             CloseRegKey $(KeyProduct)
  357.             CloseRegKey $(SoftNetRulesKey)
  358.             goto fatalregistry
  359.         endif
  360.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  361.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  362.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  363.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  364.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  365.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  366.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  367.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  368.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  369.             Debug-Output "ShellCode error."
  370.             goto ShellCodeError
  371.         endif
  372.         set RegistryErrorIndex = $($R0)
  373.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  374.             EndWait
  375.             Debug-Output "Registry error: add value list."
  376.             CloseRegKey $(KeyProduct)
  377.             CloseRegKey $(SoftNetRulesKey)
  378.             goto fatalregistry
  379.         endif
  380.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  381.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  382.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  383.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  384.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  385.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  386.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  387.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  388.             Debug-Output "ShellCode error."
  389.             goto ShellCodeError
  390.         endif
  391.         set RegistryErrorIndex = $($R0)
  392.         CloseRegKey $(KeyProduct)
  393.         CloseRegKey $(SoftNetRulesKey)
  394.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  395.             EndWait
  396.             Debug-Output "Registry error: add value list."
  397.             goto fatalregistry
  398.         endif
  399.     endif
  400.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  401.     ifint $($R4) != -1
  402.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  403.     endif
  404.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  405.         Debug-Output "Cannot add hardware component"
  406.         goto ShellCodeError
  407.     endif
  408.     set RegistryErrorIndex = $($R0)
  409.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  410.         EndWait
  411.         Debug-Output "Registry error: add hardware component"
  412.         CloseRegKey $($R1)
  413.         CloseRegKey $($R2)
  414.         CloseRegKey $($R3)
  415.         goto fatalregistry
  416.     endif
  417.     set KeyParameters = $($R3)
  418.     set KeyAdapterRules = $($R2)
  419.     set AdapterNumber = $($R4)
  420.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  421.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  422.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  423.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  424.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  425.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  426.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  427.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  428.         Debug-Output "ShellCode error"
  429.         goto ShellCodeError
  430.     endif
  431.     CloseRegKey $($R1)
  432.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  433.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  434.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  435.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  436.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  437.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  438.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  439.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  440.         Debug-Output "ShellCode error."
  441.         goto ShellCodeError
  442.     endif
  443.     set RegistryErrorIndex = $($R0)
  444.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  445.         EndWait
  446.         Debug-Output "Registry error: add value list."
  447.         CloseRegKey $(KeyParameters)
  448.         CloseRegKey $(KeyAdapterRules)
  449.         goto fatalregistry
  450.     endif
  451.     CloseRegKey $(KeyAdapterRules)
  452.     goto writeparameters
  453. writeparameters = +
  454.     Shell $(UtilityInf), GetBusTypeNum
  455.     set BusTypeNum = $($R1)
  456.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  457.         Debug-Output "ShellCode error."
  458.         goto ShellCodeError
  459.     endif
  460.  
  461.     set MemoryMapValue = *($(MemoryMapValues), ~($(MemoryMapList),$(MemoryMapIndex)))
  462.  
  463.     set IRQValue = *($(IRQValues), ~($(IRQList),$(IRQValueIndex)))
  464.  
  465.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  466.  
  467.     Set NewValueList = {{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  468.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  469.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  470.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemoryMapValue)},+
  471.                        {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)}}
  472.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  473.     CloseRegKey $(KeyParameters)
  474.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  475.         Debug-Output "ShellCode error."
  476.         goto ShellCodeError
  477.     endif
  478.     set RegistryErrorIndex = $($R0)
  479.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  480.         Debug-Output "Registry error: Add value list"
  481.         goto fatalregistry
  482.     endif
  483.     EndWait
  484.     goto successful
  485. bindingadapter =+
  486.     set Error = "Binding: Sorry, not yet implemented."
  487.     goto fatal
  488. removeadapter = +
  489.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  490.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  491.             $(ProductSoftwareName)
  492.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  493.             Debug-Output "ShellCode error"
  494.             goto ShellCodeError
  495.         endif
  496.         set RegistryErrorIndex = $($R0)
  497.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  498.             goto fatalregistry
  499.         endif
  500.     else
  501.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  502.             $(ProductSoftwareName), $(!NTN_RegBase)
  503.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  504.             Debug-Output "ShellCode error"
  505.             goto ShellCodeError
  506.         endif
  507.         set RegistryErrorIndex = $($R0)
  508.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  509.             goto fatalregistry
  510.         endif
  511.     endif
  512.     goto end
  513. UpgradeSoftware = +
  514.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  515.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  516.         Ifstr $(KeyProduct) != $(KeyNull)
  517.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  518.             set Version = *($(VersionInfo), 4)
  519.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  520.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  521.                 Debug-Output "ShellCode error"
  522.                 goto ShellCodeError
  523.             endif
  524.             set !UG_Filename = $($R0)
  525.             ifstr(i) $(!UG_Filename) != ""
  526.                 install "Install-Update"
  527.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  528.                     goto fatal
  529.                 endif
  530.             endif
  531.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  532.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  533.             ifint $(Version) != $(ProductVersion)
  534.             endif
  535.             CloseRegKey $(KeyProduct)
  536.         else
  537.             goto fatalregistry
  538.         endif
  539.     else
  540.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  541.               $(MAXIMUM_ALLOWED) NetworkCardKey
  542.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  543.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  544.             set ServiceName = *($(ServiceNameInfo), 4)
  545.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  546.                 $(MAXIMUM_ALLOWED) NetRuleKey
  547.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  548.             else
  549.                 goto fatalregistry
  550.             endif
  551.             CloseRegKey $(NetRules)
  552.             CloseRegKey $(NetworkCardKey)
  553.         else
  554.             goto fatalregistry
  555.         endif
  556.         OpenRegKey $(!REG_H_LOCAL) "" +
  557.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  558.               $(MAXIMUM_ALLOWED) ServiceKey
  559.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  560.             CloseRegKey $(ServiceKey)
  561.         else
  562.             goto fatalregistry
  563.         endif
  564.     endif
  565.     goto end
  566. successful = +
  567.     goto end
  568. abandon = +
  569.     ForListDo $(OEM_ABANDON_OPTIONS)
  570.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  571.             $(ProductSoftwareName), $($)
  572.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  573.             Debug-Output "ShellCode error"
  574.             goto ShellCodeError
  575.         endif
  576.         set RegistryErrorIndex = $($R0)
  577.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  578.             goto fatalregistry
  579.         endif
  580.     EndForListDo
  581.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  582.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  583.             $(ProductSoftwareName), FALSE
  584.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  585.             Debug-Output "ShellCode error"
  586.             goto ShellCodeError
  587.         endif
  588.         set RegistryErrorIndex = $($R0)
  589.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  590.             goto fatalregistry
  591.         endif
  592.     endif
  593.     goto end
  594. warning = +
  595.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  596.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  597.         goto ShellCodeError
  598.     endif
  599.     ifstr(i) $($R1) == "OK"
  600.         goto $(to)
  601.     else-ifstr(i) $($R1) == "CANCEL"
  602.         goto $(from)
  603.     else
  604.         goto "end"
  605.     endif
  606. nonfatalinfo = +
  607.     Set Severity = STATUS
  608.     Set CommonStatus = STATUS_USERCANCEL
  609.     goto nonfatalmsg
  610. nonfatal = +
  611.     Set Severity = NONFATAL
  612.     goto nonfatalmsg
  613. nonfatalmsg = +
  614.     ifstr(i) $(Error) == ""
  615.         Set Severity = NONFATAL
  616.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  617.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  618.             goto ShellCodeError
  619.         endif
  620.         set Error = $($R0)
  621.     endif
  622.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  623.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  624.         goto ShellCodeError
  625.     endif
  626.     ifstr(i) $($R1) == "OK"
  627.         goto $(from)
  628.     else
  629.         goto "end"
  630.     endif
  631. fatalregistry = +
  632.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  633.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  634.         goto ShellCodeError
  635.     endif
  636.     set Error = $($R0)
  637.     goto fatal
  638. fataldetect = +
  639.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  640.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  641.         Debug-Output "ShellCode error: cannot get an error string."
  642.         goto ShellCodeError
  643.     endif
  644.     set Error = $($R0)
  645.     Goto fatal
  646. fatal = +
  647.     ifstr(i) $(Error) == ""
  648.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  649.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  650.             goto ShellCodeError
  651.         endif
  652.         set Error = $($R0)
  653.     endif
  654.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  655.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  656.         goto ShellCodeError
  657.     endif
  658.     goto setfailed
  659. ShellCodeError = +
  660.     set DlgType      = "MessageBox"
  661.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  662.     set STF_MB_TEXT  = "Shell Code Error"
  663.     set STF_MB_TYPE  = 1
  664.     set STF_MB_ICON  = 3
  665.     set STF_MB_DEF   = 1
  666.     ui start "Error Message"
  667.     goto setfailed
  668. setfailed = +
  669.     set CommonStatus = STATUS_FAILED
  670.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  671.         set OEM_ABANDON_ON = FALSE
  672.         goto abandon
  673.     endif
  674.     goto end
  675. end = +
  676.     goto term
  677. term = +
  678.     Return $(CommonStatus)
  679. [DebugConfiguration]
  680.     Set InfName = "OEMSETUP.INF"
  681.     Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  682. ;    Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  683.     Debug-Output $(InfName)" IRQLevel is "$(!p:IRQValue)
  684.     Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  685.     Debug-Output $(InfName)" MemoryMappedBaseAddr is "$(!p:MemoryMapValue)
  686.     return
  687. [Install-Option]
  688.     set STF_VITAL = ""
  689.     ifstr(i) $(AddCopy) == "YES"
  690.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  691.     endif
  692.     ifstr(i) $(DoCopy) == "YES"
  693.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  694.        CopyFilesInCopyList
  695.     endif
  696.     Exit
  697. [Install-Update]
  698.    set STF_VITAL        = ""
  699.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  700.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  701.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  702.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  703.    CopyFilesInCopyList
  704.    exit
  705.  
  706. [Install-Dll]
  707.    set STF_VITAL        = ""
  708.    AddSectionFilesToCopyList Files-Dll $(!STF_SRCDIR) $(!STF_WINDOWSSYSPATH)
  709.    CopyFilesInCopyList
  710.    exit
  711.  
  712. [Source Media Descriptions]
  713.     1  = "HP Driver Support Disk"  , TAGFILE = disk1
  714. [ProductType]
  715. STF_PRODUCT  = Winnt
  716. STF_PLATFORM = I386
  717. [Files-Inf]
  718. 1,    oemsetup.inf,     SIZE=39691,    RENAME=$(!UG_Filename)
  719. [Files-HP27245]
  720. 1, hpisa.sys , SIZE=81920
  721. [Files-HP27250]
  722. 1, hpisa.sys , SIZE=81920
  723. [Files-HP27247A]
  724. 1, hpisa.sys , SIZE=81920
  725. [Files-HP27247B]
  726. 1, hpisa.sys , SIZE=81920
  727. [Files-HP27252A]
  728. 1, hpisa.sys , SIZE=81920
  729. [Files-Hpisa]
  730. 1, hpisa.sys , SIZE=81920
  731. [Files-Dll]
  732. 1, Hpisadlg.dll,  SIZE=14336
  733. [LanguagesSupported]
  734.     ENG
  735. [OptionsTextENG]
  736. ;    HPISA      = "HP 27245, 27247, and 27252 PC LAN Adapters"
  737.      HP27245   = "HP 27245A PC LAN Adapter/8 TP"
  738.      HP27250   = "HP 27250 PC LAN Adapter/8 TL"
  739.      HP27247A   = "HP 27247A PC LAN Adapter/16 TP"
  740.      HP27247B   = "HP 27247B PC LAN Adapter/16 TP Plus"
  741.      HP27252A   = "HP 27252A PC LAN Adapter/16 TL Plus"
  742. [FileConstantsENG]
  743. ProCaption   = "Windows NT Setup"
  744. ProCancel    = "Cancel"
  745. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  746.                "Are you sure you want to cancel copying files?"
  747. ProCancelCap = "Network Setup Message"
  748. ProText1     = "Copying:"
  749. ProText2     = "To:"
  750.  
  751. ;FunctionTitle   = "HP 272(45/47/50/52) PC LAN Adapter Setup"
  752. HP27245FunctionTitle    = "HP 27245A PC LAN Adapter/8 TP Setup"
  753. HP27250FunctionTitle    = "HP 27250 PC LAN Adapter/8 TL Setup"
  754. HP27247AFunctionTitle   = "HP 27247A PC LAN Adapter/16 TP Setup"
  755. HP27247BFunctionTitle   = "HP 27247B PC LAN Adapter/16 TP Plus Setup"
  756. HP27252AFunctionTitle   = "HP 27252A PC LAN Adapter/16 TL Plus Setup"
  757. ProductSoftwareDescription = "HP 272xx PC LAN Adapter Driver"
  758. ProductHardwareHP27245Description  = "HP 27245A PC LAN Adapter/8 TP"
  759. ProductHardwareHP27250Description  = "HP 27250 PC LAN Adapter/8 TL"
  760. ProductHardwareHP27247ADescription = "HP 27247A PC LAN Adapter/16 TP"
  761. ProductHardwareHP27247BDescription = "HP 27247B PC LAN Adapter/16 TP Plus"
  762. ProductHardwareHP27252ADescription = "HP 27252A PC LAN Adapter/16 TL Plus"
  763. ProductHardwareHpisaDescription = "HP 272(45/47/50/52) PC LAN Adapters"
  764. FunctionTitle   = $($(Option)FunctionTitle)
  765. IRQList  = ^($(Option)IRQChoices, 1)
  766. IRQValues = ^($(Option)IRQChoices, 2)
  767. IOBaseAddrList = ^($(Option)IOBaseAddrChoices, 1)
  768. IOBaseAddrValues = ^($(Option)IOBaseAddrChoices, 2)
  769. MemoryMapList = ^($(Option)MemoryMapChoices,1)
  770. MemoryMapValues = ^($(Option)MemoryMapChoices,2)
  771. HP27245IRQDefault = 2
  772. HP27245IOBaseAddrDefault = 5
  773. HP27245MemoryMapDefault = 1
  774. HP27247AIRQDefault = 2
  775. HP27247AIOBaseAddrDefault = 5
  776. HP27247AMemoryMapDefault = 1
  777. HP27247BIRQDefault = 1
  778. HP27247BIOBaseAddrDefault = 17
  779. HP27247BMemoryMapDefault = 1
  780. HP27250IRQDefault = 2
  781. HP27250IOBaseAddrDefault = 5
  782. HP27250MemoryMapDefault = 1
  783. HP27252AIRQDefault = 1
  784. HP27252AIOBaseAddrDefault = 17
  785. HP27252AMemoryMapDefault = 1
  786. [DialogConstantsENG]
  787. Help        = "&Help"
  788. Exit        = "Cancel"
  789. OK          = "OK"
  790. HelpContext = ""
  791. Continue    = "Continue"
  792. Cancel      = "Cancel"
  793. [MemoryMappedChoicesENG]
  794. Map_1 = 1, "ON"
  795. Map_2 = 0, "OFF"
  796. [FileDependentDlgENG]
  797. DlgType = "RadioCombination"
  798. DlgTemplate = "HPISA"
  799. Caption = $(FunctionTitle)
  800. DlgText = "Please select values for the following fields:"
  801. Combo1Label = "Interrupt Channel:"
  802. Combo2Label = "Base I/O Address:"
  803. Combo3Label = "Base Memory Address:"
  804. Combo1List = $(IRQList)
  805. Combo1Out  = $(IRQValue)
  806. Combo2List = $(IOBaseAddrList)
  807. Combo2Out  = $(IOBaseAddrValue)
  808. Combo3List = $(MemoryMapList)
  809. Combo3Out  = $(MemoryMapValue)
  810. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
  811. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
  812. EditTextIn = ""
  813. EditTextLim = ""
  814. CBOptionsGreyed = {}
  815. NotifyFields = {NO, NO}
  816. [HP27245IRQChoices]
  817. IRQ_1 = "2",2
  818. IRQ_2 = "3",3
  819. IRQ_3 = "4",4
  820. IRQ_4 = "5",5
  821. IRQ_5 = "7",7
  822. [HP27250IRQChoices]
  823. IRQ_1 = "2",2
  824. IRQ_2 = "3",3
  825. IRQ_3 = "4",4
  826. IRQ_4 = "5",5
  827. IRQ_5 = "7",7
  828. [HP27247AIRQChoices]
  829. IRQ_1 = "2",2
  830. IRQ_2 = "3",3
  831. IRQ_3 = "4",4
  832. IRQ_4 = "5",5
  833. IRQ_5 = "7",7
  834. IRQ_7 = "10",10
  835. IRQ_8 = "11",11
  836. [HP27247BIRQChoices]
  837. IRQ_1 = "3",3
  838. IRQ_2 = "4",4
  839. IRQ_3 = "5",5
  840. IRQ_4 = "6",6
  841. IRQ_5 = "7",7
  842. IRQ_6 = "9",9
  843. IRQ_7 = "10",10
  844. IRQ_8 = "11",11
  845. IRQ_9 = "12",12
  846. IRQ_10 = "15",15
  847. [HP27252AIRQChoices]
  848. IRQ_1 = "3",3
  849. IRQ_2 = "4",4
  850. IRQ_3 = "5",5
  851. IRQ_4 = "6",6
  852. IRQ_5 = "7",7
  853. IRQ_6 = "9",9
  854. IRQ_7 = "10",10
  855. IRQ_8 = "11",11
  856. IRQ_9 = "12",12
  857. IRQ_10 = "15",15
  858. [HP27245IOBaseAddrChoices]
  859. IOBase_1  = "0x200",512
  860. IOBase_2  = "0x240",576
  861. IOBase_3  = "0x280",640
  862. IOBase_4  = "0x2c0",704
  863. IOBase_5  = "0x300",768
  864. IOBase_6  = "0x320",800
  865. IOBase_7  = "0x340",832
  866. [HP27250IOBaseAddrChoices]
  867. IOBase_1  = "0x200",512
  868. IOBase_2  = "0x240",576
  869. IOBase_3  = "0x280",640
  870. IOBase_4  = "0x2c0",704
  871. IOBase_5  = "0x300",768
  872. IOBase_6  = "0x320",800
  873. IOBase_7  = "0x340",832
  874. [HP27247AIOBaseAddrChoices]
  875. IOBase_1  = "0x200",512
  876. IOBase_2  = "0x240",576
  877. IOBase_3  = "0x280",640
  878. IOBase_4  = "0x2c0",704
  879. IOBase_5  = "0x300",768
  880. IOBase_6  = "0x320",800
  881. IOBase_7  = "0x340",832
  882. [HP27247BIOBaseAddrChoices]
  883. IOBase_1  = "0x100",256
  884. IOBase_2  = "0x120",288
  885. IOBase_3  = "0x140",320
  886. IOBase_4  = "0x160",352
  887. IOBase_5  = "0x180",384
  888. IOBase_6  = "0x1a0",416
  889. IOBase_7  = "0x1c0",448
  890. IOBase_8  = "0x1e0",480
  891. IOBase_9  = "0x200",512
  892. IOBase_10  = "0x220",544
  893. IOBase_11  = "0x240",576
  894. IOBase_12  = "0x260",608
  895. IOBase_13  = "0x280",640
  896. IOBase_14  = "0x2a0",672
  897. IOBase_15  = "0x2c0",704
  898. IOBase_16  = "0x2e0",736
  899. IOBase_17  = "0x300",768
  900. IOBase_18  = "0x320",800
  901. IOBase_19  = "0x340",832
  902. IOBase_20  = "0x360",864
  903. IOBase_21  = "0x380",896
  904. IOBase_22  = "0x3a0",928
  905. IOBase_23  = "0x3c0",960
  906. [HP27252AIOBaseAddrChoices]
  907. IOBase_1  = "0x100",256
  908. IOBase_2  = "0x120",288
  909. IOBase_3  = "0x140",320
  910. IOBase_4  = "0x160",352
  911. IOBase_5  = "0x180",384
  912. IOBase_6  = "0x1a0",416
  913. IOBase_7  = "0x1c0",448
  914. IOBase_8  = "0x1e0",480
  915. IOBase_9  = "0x200",512
  916. IOBase_10  = "0x220",544
  917. IOBase_11  = "0x240",576
  918. IOBase_12  = "0x260",608
  919. IOBase_13  = "0x280",640
  920. IOBase_14  = "0x2a0",672
  921. IOBase_15  = "0x2c0",704
  922. IOBase_16  = "0x2e0",736
  923. IOBase_17  = "0x300",768
  924. IOBase_18  = "0x320",800
  925. IOBase_19  = "0x340",832
  926. IOBase_20  = "0x360",864
  927. IOBase_21  = "0x380",896
  928. IOBase_22  = "0x3a0",928
  929. IOBase_23  = "0x3c0",960
  930. [HP27245MemoryMapChoices]
  931. MemoryMap_1 = "I/O Mode",0
  932. [HP27250MemoryMapChoices]
  933. MemoryMap_1 = "I/O Mode",0
  934. [HP27247AMemoryMapChoices]
  935. MemoryMap_1 = "I/O Mode",0
  936. [HP27247BMemoryMapChoices]
  937. MemoryMap_1 = "I/O Mode",0
  938. MemoryMap_2 = "0xC8000",819200
  939. MemoryMap_3 = "0xCC000",835584
  940. MemoryMap_4 = "0xD0000",851968
  941. MemoryMap_5 = "0xD4000",868352
  942. MemoryMap_6 = "0xD8000",884736
  943. MemoryMap_7 = "0xDC000",901120
  944. MemoryMap_8 = "0xE0000",917504
  945. MemoryMap_9 = "0xE4000",933888
  946. MemoryMap_10 = "0xE8000",950272
  947. MemoryMap_11 = "0xEC000",966656
  948. [HP27252AMemoryMapChoices]
  949. MemoryMap_1 = "I/O Mode",0
  950. MemoryMap_2 = "0xC8000",819200
  951. MemoryMap_3 = "0xCC000",835584
  952. MemoryMap_4 = "0xD0000",851968
  953. MemoryMap_5 = "0xD4000",868352
  954. MemoryMap_6 = "0xD8000",884736
  955. MemoryMap_7 = "0xDC000",901120
  956. MemoryMap_8 = "0xE0000",917504
  957. MemoryMap_9 = "0xE4000",933888
  958. MemoryMap_10 = "0xE8000",950272
  959. MemoryMap_11 = "0xEC000",966656
  960.